package com.ruge.sorm.core;

/**
 * MySQL数据库和Java数据类型的转换
 *
 * @author admin
 * @version 2023/10/21 10:40
 **/
public class MysqlTypeConvertor implements TypeConvertor {


    /**
     * 将数据库数据类型转化成Java数据类型
     *
     * @param columnType 数据库字段的数据类型
     * @return Java的数据类型
     */
    @Override
    public String databaseTypeToJavaType(String columnType) {
        // varchar --> String
        if ("varchar".equalsIgnoreCase(columnType) || "char".equalsIgnoreCase(columnType)) {
            return "String";
        } else if ("int".equalsIgnoreCase(columnType)
                || "tinyint".equalsIgnoreCase(columnType)
                || "smallint".equalsIgnoreCase(columnType)
                || "integer".equalsIgnoreCase(columnType)) {
            return "Integer";
        } else if ("bigint".equalsIgnoreCase(columnType)) {
            return "Long";
        } else if ("double".equalsIgnoreCase(columnType) || "float".equalsIgnoreCase(columnType)) {
            return "Double";
        } else if ("clob".equalsIgnoreCase(columnType)) {
            return "java.sql.Clob";
        } else if ("blob".equalsIgnoreCase(columnType)) {
            return "java.sql.Blob";
        } else if ("date".equalsIgnoreCase(columnType)) {
            return "java.sql.Date";
        } else if ("time".equalsIgnoreCase(columnType)) {
            return "java.sql.Time";
        } else if ("timestamp".equalsIgnoreCase(columnType)) {
            return "java.sql.Timestamp";
        }

        return null;
    }

    /**
     * 将Java数据类型转化成数据库数据类型
     *
     * @param javaDataType Java数据类型
     * @return 数据库数据类型
     */
    @Override
    public String javaTypeToDatabaseType(String javaDataType) {
        return null;
    }
}